package br.com.senac.pi5.servlet;

import br.com.senac.pi5.bean.Cliente;
import br.com.senac.pi5.dao.ClienteDao;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns = {"/CadastroClienteServlet"})
public class CadastroClienteServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //busca o writer
        PrintWriter out = response.getWriter();
        
        // pegando os parâmetros do request
        String nome = request.getParameter("nome");
        String sobrenome = request.getParameter("sobrenome");
        String sexo = "M";
        String rg = request.getParameter("rg");
        String cpf = request.getParameter("cpf");
        String endereco = request.getParameter("endereco");
        Long numero = Long.parseLong(request.getParameter("numero"));
        String complemento = request.getParameter("complemento");
        String bairro = request.getParameter("bairro");
        String dataEmTexto = request.getParameter("dt_nasc"); 
        Calendar dt_nasc;
        
        //fazendo conversão da data
        try {
        Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dataEmTexto);
        dt_nasc = Calendar.getInstance();
        dt_nasc.setTime(date);
        } catch (ParseException e) {
            out.println("Erro na conversão da data");
            return; //para a execução do método
        }
        
        String cidade = request.getParameter("cidade");
        String estado = request.getParameter("estado");
        String cep = request.getParameter("cep");
        String tel = request.getParameter("tel");
        String email = request.getParameter("email");
        String senha = request.getParameter("senha");
              
        // monta um objeto cliente
        Cliente cliente = new Cliente();
        cliente.setNome(nome);
        cliente.setSobrenome(sobrenome);
        cliente.setSexo(sexo);
        cliente.setRg(rg);
        cliente.setCpf(cpf);
        cliente.setEndereco(endereco);
        cliente.setNumero(numero);
        cliente.setComplemento(complemento);
        cliente.setBairro(bairro);
        
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        cliente.setDt_nasc(sdf.format(dt_nasc));
        cliente.setCidade(cidade);
        cliente.setEstado(estado);
        cliente.setCep(cep);
        cliente.setTel(tel);
        cliente.setEmail(email);
        cliente.setSenha(senha);
       
        // salva o cliente
        try {
            ClienteDao dao = new ClienteDao();
            dao.adiciona(cliente);
        } catch (SQLException ex) {
            Logger.getLogger(CadastroClienteServlet.class.getName()).log(Level.SEVERE, null, ex);
        } 
   
        out.println("<html>");
        out.println("<body>");    
        out.println("Cliente " + cliente.getNome() + " adicionado com successo!!!"); 
        out.println("</html>");
        out.println("</body>");  
    }
}
